/**
 * 中间件管理模块
 * @module middlewares
 * @version 1.0.0
 * @author 技术支持团队
 */

const bodyParser = require('body-parser');
const path = require('path');

/**
 * 配置基础中间件
 * @param {Object} app - Express 应用实例
 */
const setupBaseMiddlewares = (app) => {
    // JSON 解析
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));
};

/**
 * 错误处理中间件
 * @param {Object} app - Express 应用实例
 */
const setupErrorHandlers = (app) => {
    // JSON 解析错误处理
    app.use((err, req, res, next) => {
        if (err instanceof SyntaxError && err.status === 400 && 'body' in err) {
            console.error('❌ JSON 解析错误:', err);
            
            // 根据路径返回不同示例
            let example = {};
            switch(req.path) {
                case '/api/img/getNewsPoster':
                    example = {
                        "news": ["新闻1", "新闻2", "新闻3"]
                    };
                    break;
                case '/api/video/generateVideo':
                    example = {
                        "text": "视频内容",
                        "images": ["image1.jpg", "image2.jpg"],
                        "audio": "background.mp3"
                    };
                    break;
                // 添加更多路由示例
                default:
                    example = {
                        "message": "示例数据"
                    };
            }

            return res.status(400).json({
                code: 400,
                message: '无效的 JSON 数据',
                details: '请检查请求体是否符合 JSON 格式，注意：1. 使用双引号 2. 使用英文冒号',
                example: example
            });
        }
        next();
    });
};

module.exports = {
    setupBaseMiddlewares,
    setupErrorHandlers
}; 